# BL TOUCH Установка 

## Введение 

Зачем это все? 

Повысить стабильность печати. К сожалению, столы на пружынках переодически теряют горизон, и стол постоянно приходиться подключивать, чтобы первый слой был идеальный. Кроме того, кажется при печати на 105 и 80 градусах на поверзности стола, высота немного меняется из-за тепературы, поэтому иногда приходиться нгастрвиать стол под разные пластики. 

Итого зотя и редки, но все же танцы с принетром стали надоедать, а тут еще датчик без дела лежал, вообще решил поставить.


Сам датчки, когда-то заказал у кого-то на авито с доставкой. Датчик называется 3D Touch (китайский аналог BL Touch)

Этап установки разделю на две части 
1. Hardware installation 
2. Software installation 

Первая часть про то какими туториалми пользовался для:
- установки 3d Touch на голову принтера 
- подключению к плате принтера 

Вторая часть про настройку в Klipper 


## Hardware installation 

Китайский аналог BL Touch, заказал с авито, подробностей не знаю. У китацев часто разная распиновка. 


1. Печатаю крепление 
	-  https://www.printables.com/model/213023-bltouch-support-for-flyingbear-ghost-5/files
	- У меня директ, другие крепление с thingevesre не подошли 
2. Устанавливаю на голову 
3. Подключаю к плате

> Касательно распиновки, общую схему нашел на видео. 
> Главное найти сигнальный кабель, я подумал, что он помечен треугольником на выходе, а дальше следовал инструкии с видое. 
> Посмотрел распиновку на датчике и плате принтера, поменял пины на датчике местами (плюс и минус) и подключил куда посчитал нужным. 

Что сделал по факту ?
1. Поменял пины местами на сигнальном проводое, так как у меня плата не с нативным BL Touch 
	1. # Board: MKS Robin Nano 1.1 (Flying Bear Reborn 2.0)
2. Подключил сигнальный провод к PB2
3. Концевик подключил к ~~Z+ (PC4)~~ MT_DET2_PIN (PE6)

==ToDO==
Фотки скину позже
:::

### Ползеные ссыдки 
1. [Видос по подключению](https://m.youtube.com/watch?v=39TEYQN8iQ4)
1. [Статья инструкция по всем платам](https://shui.hardisoft.ru/ustanovka-proshivki/ustanovka-i-nastrojka-bltouch/)
1. Инфа про мою плату в конфигах клипера, там и ссылки и назвниае


## Software Installation 


<details>
<summary> Найстроки подключения BL touch</summary> 

Просто черновик, чтобы понять где какой пин у меня был подключен 
> [!NOTE] BLTouch подключение 
  BLTOUCH_SENSOR_PIN=PE6,                                                       # MT_DET2
  BLTOUCH_CONTROL_PIN=PB2,  


> [!NOTE] BL Touch
>  https://www.klipper3d.org/BLTouch.html
> Most BL-Touch devices require a pullup on the sensor pin (prefix the pin name with "^")
>
> Offset calculator
> https://docs.google.com/spreadsheets/d/1RAdhZYmozszxVk1wzSGsmHUTGrgdN-qGp5gZ5-Ksxr8/edit?usp=sharing
>
> disable 'position_endstop' in [stepper_z] section of printer.cfg
> 
> ==Pin Definitions==
> 
> You have different choices on how to plug your probe on MKS Robin Nano:
> 
> **Sensor** can be plugged into one of the list:
>\# Z_MIN_STOP           PA11
>\# Z_MAX_STOP           PC4
>\# MT_DET2              PE6
>\# WiFi_IO0             P13     MKSRNv1.3
>\# WiFi_IO0             PA8     MKSRNv1.1
> 
> **Servo control** can be plugged into one of the list:
>\# SERVO                PA8     'BLTOUCH' slot on MKSRNv1.3
>\# PB2                  PB2
> 
> You can check default 'BLTOUCH_SENSOR_PIN' and 'BLTOUCH_CONTROL_PIN' in your board cfg file


Закомментил еще несоклько строк из-за которых вылезала ошибка. 
</details>

Я по сути использовал лишь один видеотуториал (ссылка ниже) и гуглил ошибки, находя ответы на reddit, klipper forum. Поэтому решил не расписывать что к чему. 
Однако оставил дневник по установке. Там не распиан подробно каждый мой шаг. Писал в дневник, когда помнил о его существовании. 

> [!tip]  подключения BL Touch к Klipper 
> Подробный туториал 
> https://youtu.be/5vmjBXvY6BA?si=lL_XG82meaPwc6fu 
> Этот же автор написал еще и статью [туториал ](https://www.printsleo3d.com/bltouchsetup)
>
> ### Основные шаги 
> 1. Add sections to `printer.cfg`
> 2. Perform sanity test 
> 3. Find the X and Y offset 
> 4. Z-offset adjustment 
> 5. Find mesh_min and mesh_max coordinates 
> 6. Create a bed mesh 
> 7. First print Live Z-offset adjustment 


<details>
<summary> Дневник настройки по туториалу</summary> 

## Шаг 1
[[23.04.2024 14:39]]

Первый шаг, это по сути те настройки, которые я скопировал из GitHub 

## Шаг 2
[[23.04.2024 14:43]]

Проверки работоспособности 

`Klipper console` 

Проверяем датчик, двигается ли он вверз и вниз по командам
У меня не двигался, но помогла перезагрзука притера и платы 
```klipper cmd 
BLTOUCH_DEBUG COMMAND=pin_down
BLTOUCH_DEBUG COMMAND=pin_up
```
Дальше проверяем, правильно понимает какой сейчас режим у датчика. 
Для этого опускаем датчик, выставляем режим и проверяем какой режим сейчас стоит 
```klipper 
BLTOUCH_DEBUG COMMAND=pin_down
BLTOUCH_DEBUG COMMAND=touch_mode
QUERY_PROBE
```

Ответ должен быть быть `probe: open`

Дальше проверяем, понимает ли датчик, когда он сработал, для этого опускаем датчик снова, проверяем какой у него статус, и аккуратно руками поднимаем его вверх и снова проверяем статус, в последний раз он должен вернуть `probe:TRIGGERED`

В моем случае он всегда возвращает `probe: open`, ищу в чем проблема  [[23.04.2024 15:02]]

Поискал всякое в документации, проверил подключен ли правильно датчик 
- подключен вернор 
- настройки из доков Klipper отвечают не за то 
- по итогу проверил работоспособность иначе, просто опустил стол вниз и нажал на кнопку возрата домой (команда G28) и когда стол начал двигаться аккуратно надовил на тадчик, и стол двигаться преестал => датчик работает 

Хотя в инструкции шаг с проверкой возврата `prope: triggered` есть, я его пропущу
[[23.04.2024 15:32]]


## Шаг 3
[[23.04.2024 16:02]]
Настриваю офсеты для XY
Скопировал klipper таблицу из конфигов
Она по сути не нужна, но я добавил туда таблица для подсчета 
https://docs.google.com/spreadsheets/d/1oZJ7Ny1GvRJ69KNQO_VR_iY7pfzSLl1n_EZKfyBdsTM/edit?usp=sharing

![[Pasted image 20240423160422.png]]
 Добавил offset в секции `[bltouch]`

[[23.04.2024 16:06]]

Шаг третий [[23.04.2024 16:13]]
добавил параметр `position_min: -6.0`
Дальше впибываем команду `probe_calibrate`
Принтер делает несколько движенией и в klipper появляется меню с калибровкой сопла. 
![[Pasted image 20240423162823.png]]

Дальше как обычно калибруем с листочком и копируем среднее значение.
Это значение вставляем в `z_offset`  → `[bltouch]`

[[23.04.2024 16:28]]

## Шаг 4
[[24.04.2024 00:20]]
Find min and max coordinates 

Only x has max 
From 255 → 240 
==ToDO== → Limit in OrcaSlicer 

Столкнулся с проблемой, сопло и датчик выезжают за границы. Поправил min mesh в bed mesh параметре (увеличил занчения на 5)
На форуме клиппера это тоже [обсуждали](https://klipper.discourse.group/t/move-out-of-range-when-doing-bed-mesh-calibrate/3448)

- [Bl-Touch Klipper Docs](https://www.klipper3d.org/BLTouch.html)
- 

https://www.thingiverse.com/thing:6465340/files
[[24.04.2024 01:19]]

2.587+0.235
2.587-0.235

Ну и дальше я перестал ввести дневник, пошли бесконечные тесты 
</details>

Что вышло по итогу? 
Датчик работает. Но каждый раз замер не совпадает с прошлым. Предпологаю, погрешность небольшая и это допустимо. 

Стало ли в 1000 раз лучше печать? 
Нет. Но теперь слои ложаться равномерно во всех облостях стола. А может это я надумываю, в попытке убедить себя, что все это было не зря. 

Печать не идеальная. Видны полосы, при тесте PA были в некоторых местах пропуски. 
В общем, датчик не решил все проблемы, наоборот теперь появился план чего еще потыкать, в надежде улучшить качество печати до отличного. 

